package com.ruoyi.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.system.domain.PmMaterialList;

public interface IPmMaterialListService extends IService<PmMaterialList> {

    /**
     * 分页查询物料清单（关联项目）
     */
    IPage<PmMaterialList> selectMaterialListPage(int pageNum, int pageSize, PmMaterialList list);

    /**
     * 创建物料清单（关联t_project，自动填充项目编号/名称）
     */
    boolean createMaterialList(PmMaterialList list);

    /**
     * 修改物料清单基本信息（名称、业主预算、备注等）
     * @param list 待修改的清单信息（需包含id）
     * @param operatorId 操作人ID
     * @param operatorName 操作人姓名
     * @return 是否修改成功
     */
    boolean updateMaterialList(PmMaterialList list, Long operatorId, String operatorName);
    /**
     * 推送清单给业主
     */
    boolean pushToOwner(Long listId, Long operatorId, String operatorName);

    /**
     * 撤回业主推送
     */
    boolean cancelPush(Long listId, Long operatorId, String operatorName);

    /**
     * 计算清单汇总数据（预算总额、总成本、毛利率）
     */
    void calculateListSummary(Long listId);
}
